﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace iNet
{
	/// <summary>
	/// 提供屬性值變更相關事件資料。
	/// </summary>
	/// <typeparam name="T">屬性值的型別。</typeparam>
	public class ValueChangedEventArgs<T> : EventArgs
	{
		#region 欄位
		readonly T _NewValue;
		readonly T _OldValue;
		#endregion
		#region 建構子
		/// <summary>
		/// 初始化新的 ValueChangedEventArgs 執行個體。
		/// </summary>
		/// <param name="oldValue">舊的屬性值。</param>
		/// <param name="newValue">新的屬性值。</param>
		public ValueChangedEventArgs(T oldValue, T newValue)
		{
			_OldValue = oldValue;
			_NewValue = newValue;
		}
		#endregion
		#region OldValue
		/// <summary>
		/// 取得舊的屬性值。
		/// </summary>
		public T OldValue
		{
			get
			{
				return _OldValue;
			}
		}
		#endregion
		#region NewValue
		/// <summary>
		/// 取得新的屬性值。
		/// </summary>
		public T NewValue
		{
			get
			{
				return _NewValue;
			}
		}
		#endregion
	}
}
